// admin/system/model/gen_table.go
package model

import (
	"time"
)

// GenTable 代码生成业务表
type GenTable struct {
	TableID        int64      `json:"table_id" gorm:"column:table_id;primaryKey;autoIncrement;comment:编号"`
	TableComment   string     `json:"table_comment" gorm:"column:table_comment;size:500;default:'';comment:表描述"`
	SubTableName   *string    `json:"sub_table_name,omitempty" gorm:"column:sub_table_name;size:64;comment:关联子表的表名"`
	SubTableFkName *string    `json:"sub_table_fk_name,omitempty" gorm:"column:sub_table_fk_name;size:64;comment:子表关联的外键名"`
	ClassName      string     `json:"class_name" gorm:"column:class_name;size:100;default:'';comment:实体类名称"`
	TplCategory    string     `json:"tpl_category" gorm:"column:tpl_category;size:200;default:'crud';comment:使用的模板（crud单表操作 tree树表操作）"`
	TplWebType     string     `json:"tpl_web_type" gorm:"column:tpl_web_type;size:30;default:'';comment:前端模板类型（element-ui模版 element-plus模版）"`
	PackageName    *string    `json:"package_name,omitempty" gorm:"column:package_name;size:100;comment:生成包路径"`
	ModuleName     *string    `json:"module_name,omitempty" gorm:"column:module_name;size:30;comment:生成模块名"`
	BusinessName   *string    `json:"business_name,omitempty" gorm:"column:business_name;size:30;comment:生成业务名"`
	FunctionName   *string    `json:"function_name,omitempty" gorm:"column:function_name;size:50;comment:生成功能名"`
	FunctionAuthor *string    `json:"function_author,omitempty" gorm:"column:function_author;size:50;comment:生成功能作者"`
	GenType        string     `json:"gen_type" gorm:"column:gen_type;size:1;default:'0';comment:生成代码方式（0zip压缩包 1自定义路径）"`
	GenPath        string     `json:"gen_path" gorm:"column:gen_path;size:200;default:'/';comment:生成路径（不填默认项目路径）"`
	Options        *string    `json:"options,omitempty" gorm:"column:options;size:1000;comment:其它生成选项"`
	CreateBy       string     `json:"create_by" gorm:"column:create_by;size:64;default:'';comment:创建者"`
	CreateTime     *time.Time `json:"create_time,omitempty" gorm:"column:create_time;comment:创建时间"`
	UpdateBy       string     `json:"update_by" gorm:"column:update_by;size:64;default:'';comment:更新者"`
	UpdateTime     *time.Time `json:"update_time,omitempty" gorm:"column:update_time;comment:更新时间"`
	Remark         *string    `json:"remark,omitempty" gorm:"column:remark;size:500;comment:备注"`
}

// TableName 获取表名
func (GenTable) TableName() string {
	return "gen_table"
}
